export enum AttackPhaseType {
  Control = "CONTROL",
  Delivery = "DELIVERY",
  Goal = "GOAL",
  Intrusion_Broken = "INTRUSION_BROKEN",
  Intrusion_Unbroken = "INTRUSION_UNBROKEN",
  Lateral = "LATERAL",
  Recon = "RECON",
}

export interface AttackPhaseCount {
  control?: number;
  delivery?: number;
  goal?: number;
  intrusion?: number;
  lateral?: number;
  recon?: number;
}

export interface AttackPhaseNames {
  control?: string;
  delivery?: string;
  goal?: string;
  intrusion?: string;
  lateral?: string;
  recon?: string;
}

export interface AttackPhaseProps {
  value?: AttackPhaseType[];
  onChange?: (value: AttackPhaseType[], isBroken?: boolean) => void;
  phaseCount?: AttackPhaseCount;
  phaseNames?: AttackPhaseNames;
  className?: string;
  legendVisible?: boolean;
  legendBrokenName?: string;
  legendUnbrokenName?: string;
  popoverVisible?: boolean;
  onPopoverJump?: (type: AttackPhaseType[]) => void;
}
